Android — DrawerLayout/NavigationView/ToolsBar 侧滑栏的实现

前言

本来在新建项目的时候有侧滑栏模板可以选择,但是用到了很多作为比较常见的MD风格的控件,还是需要自己写一遍。实现一个侧滑栏不仅可以学习以上三个布局/控件,还能学到沉浸式状态栏的实现,还是很有价值的,同时也踩踩坑。

学习的过程中主要是参考了以下这篇博文,讲的是非常详细,还是很nice的:

https://www.jianshu.com/p/d70cfd724c7f

注意

这里其实坑还是有的,需要注意以下几点:

  1. 该Activity类需要继承至AppCompatActivity,而不是Activity。继承至Activity在写setSupportActionBar(mToolbar)会直接报错,emmmm,是时候要总结以下两者的区别的。

  2. 实例化NavigationView/Toolsbar的时候,需要加上前缀,即:

    1
    2
    private android.support.design.widget.NavigationView mMenuView;
    private android.support.v7.widget.Toolbar mToolbar;

    兼容更多API版本。

  3. NavigationView中的menu菜单的中的item只显示标题,不显示icon。网上找了一大堆,都是要重写onCreatOptionsMenu()方法,但是为什么我的不行呢。最后发现:

    1
    2
    3
    //将Icon显示为它本身的颜色竟然解决了不显示icon的问题
    mMenuView = findViewById(R.id.navigation_view);
    mMenuView.setItemIconTintList(null);

    我设置的icon也不是无色透明的呀。

  4. 想仿照网易云的侧滑栏,但是在NavigationView的布局下面添加布局是显示不出来的,所以这算是一个问题,网上写的侧滑栏也是类似以下:

    网易云侧滑栏:

    如果你有什么想法,欢迎邮至869759698@qq.com,感激不尽。

我们一直都向往,面朝大海,春暖花开。 但是几人能做到,心中有爱,四季不败?